<?php
class InformemensualesController extends AppController {

	var $name = 'Informemensuales';
	var $uses = array('Municipio','Informemensuale','User','MunicipiosUser');
	var $helpers = array('Xls','Informe','Access');	
	
	function index() {
		$usuario_activo=$this->Access->getMy('username');	
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		//Fin de sesion
		
		$this->Informemensuale->recursive=0;		
	    $user_id = $this->Access->getMy('id');
		$municipios_user=$this->MunicipiosUser->find('all',array('fields',array('MunicipiosUser.id',),'conditions'=>array('MunicipiosUser.user_id'=>$user_id)));	
		foreach ($municipios_user as &$municipio){
			$nombre_municipio=$this->Municipio->find('first',array('fields'=>array('Municipio.id','Municipio.nombre'),
																	'conditions'=>array('Municipio.id'=>$municipio['MunicipiosUser']['municipio_id'])));
			$municipio['MunicipiosUser']['nombre']=$nombre_municipio['Municipio']['nombre'];			
		}
		$this->set(compact('municipios','user_id','municipios_user'));
	}
	function view($id = null) {
		$usuario_activo=$this->Access->getMy('username');	
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		//Fin de sesion
		if (!$id) {
			$this->Session->setFlash(__('Informe Mensual Invalido', true));
			$this->redirect(array('action' => 'index'));
		}
		$user_id = $this->Access->getMy('id');
		$this->set(compact('user_id'));
		$this->set('informemensuale', $this->Informemensuale->read(null, $id));
	}
	
	
	function add($mes=null, $year=null, $id=null) {
		$usuario_activo=$this->Access->getMy('username');	
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		//Fin de sesion
		if (!empty($this->data)) {
			$this->Informemensuale->create();		
			if ($this->Informemensuale->save($this->data)) {
				$this->Session->setFlash(__('Informe Mensual Guardado', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('El Informe Mensual no se ha guardado', true));
			}
		}
		$user_id = $this->Access->getMy('id');
		$municipios = $this->Informemensuale->Municipio->find('list', array('fields'=>array('Municipio.id','Municipio.nombre'),'order'=>array('Municipio.nombre'=>'ASC')));
		$municipio_datos=$this->Informemensuale->Municipio->find('first',array('fields'=>array('Municipio.id','Municipio.nombre'),'conditions'=>array('Municipio.id'=>$id)));
		$users = $this->Informemensuale->User->find('list',array('fields'=>array('User.id','User.nombre')));
		$fecha = $mes."-".$year;
		$aprobador=$this->User->find('list', array('fields'=>array('User.nombre'), 'conditions'=>array('User.id'=>1)));
		$this->set(compact('municipios','municipio_datos','users','fecha','user_id','aprobador'));
	}
	
	function edit($mes=null, $year=null, $id=null) {
		$usuario_activo=$this->Access->getMy('username');	
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		//Fin de sesion
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Informe Mensual Invalido', true));
			$this->redirect(array('action'=>'index'));
		}
		if (!empty($this->data)) {
			if ($this->Informemensuale->save($this->data)) {
				$this->Session->setFlash(__('Informe Mensual Actualizado', true));
				$this->redirect(array('action' =>'index'));
			} else {
				$this->Session->setFlash(__('El Informe Mensual no se Actualizo.', true));
			}
		}
		if (empty($this->data)) {
			$id_informe = $this->Informemensuale->find('first',array('conditions'=>array('Informemensuale.mes_ano'=>$mes."-".$year, 'Informemensuale.municipio_id'=>$id)));
			$this->data = $id_informe;
		}
			$user_id = $this->Access->getMy('id');
			$municipios = $this->Informemensuale->Municipio->find('list', array('fields'=>array('Municipio.id','Municipio.nombre'),'order'=>array('Municipio.nombre'=>'ASC')));
			$municipio_datos=$this->Informemensuale->Municipio->find('first',array('fields'=>array('Municipio.id','Municipio.nombre'),'conditions'=>array('Municipio.id'=>$id)));
			$users = $this->Informemensuale->User->find('list',array('fields'=>array('User.id','User.nombre')));
			$fecha = $mes."-".$year;
			$aprobador=$this->User->find('list', array('fields'=>array('User.nombre'), 'conditions'=>array('User.id'=>1)));
			$this->set(compact('municipios','municipio_datos','users','fecha','user_id','aprobador'));			
	}
	
	function delete($id = null) {
		$usuario_activo=$this->Access->getMy('username');	
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		//Fin de sesion
		if (!$id) {
			$this->Session->setFlash(__('Invalido Informe Mensual', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->Informemensuale->delete($id)) {
			$this->Session->setFlash(__('Informe Mensual Eliminado', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Informe Mensual no se ha eliminado', true));
		$this->redirect(array('action' => 'index'));
	}
	
	//Vista para generar los documentos
	function informe_por_mes($mes=null,$municipio=null){
		$usuario_activo=$this->Access->getMy('username');	
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		//Fin de sesion
		//Traer solo los municpios del usuario Activo		
		$user_id = $this->Access->getMy('id');
		$municipios_user=$this->MunicipiosUser->find('all',array('fields',array('MunicipiosUser.id',),'conditions'=>array('MunicipiosUser.user_id'=>$user_id)));
		$users = $this->Informemensuale->User->find('list',array('fields'=>array('User.id','User.nombre')));
		
		foreach ($municipios_user as &$municipio){
			$nombre_municipio=$this->Municipio->find('first',array('fields'=>array('Municipio.id','Municipio.nombre'),
																	'conditions'=>array('Municipio.id'=>$municipio['MunicipiosUser']['municipio_id'])));
			$municipio['MunicipiosUser']['nombre']=$nombre_municipio['Municipio']['nombre'];			
		}
		$this->set(compact('users','user_id','municipios_user'));
	}
	function informe_mensual_documento($mes=null, $year=null, $municipio=null){
		$usuario_activo=$this->Access->getMy('username');	
		//Verificacion de sesion del sistema		
		if(!$usuario_activo){
			$this->Session->setFlash(__('Por favor inicie sesion', true));
			$this->redirect(array('controller'=>'users','action' => 'login'));
		}
		//Fin de sesion
		$usuario_activo=$this->Access->getMy('username');
		$fecha = $mes."-".$year;				
		$informe=$this->Informemensuale->find('first', array('conditions'=>array('Informemensuale.mes_ano'=>$fecha, 'Informemensuale.municipio_id'=>$municipio)));		
		$this->set(compact('informe'));
	}
}			